The invention pertains to digital data processing and, more particularly, to the diagnosis and correction of faults in peripheral devices that are coupled with a computer. The invention has application in configuring PCMCIA-compatible devices, or PC Cards used with a personal computer.
Personal computers am increasingly present in the home and office. With the advent of new user interfaces, they are now easier to use and, hence, are gaining ready acceptance in the marketplace. Impediments to wide acceptance of personal computers, however, include the difficulty of adding new components, such as peripheral devices, and configuring them. For example, in order to add a modem that permits a personal computer to communicate over phone lines, the user may be required to disassemble the computer, insert a circuit board, reassemble the computer and, then, configure its software.
A development that alleviates this difficulty is the so-called PCMCIA card, or "PC Card." This is a credit card-sized unit that contains miniaturized peripheral device circuitry, e.g., modem circuitry, and that plugs into a recessed socket on the outside of the computer case. The cards can typically be "hot plugged," i.e., inserted into an operating computer and configured by software for essentially immediate operation. Likewise, they can be unplugged to make way for other cards.
To facilitate use of PC Cards, an international standards committee defined the hardware and software layers of a peripheral device service subsystem for controlling and communicating with the units. At the lowest level is a physical layer that includes sockets, adapters and hardware circuitry for achieving mechanical and electrical communication between the host computer and a PC Card. A socket services layer resides above the physical layer and provides a register-level software interface to the PC CARD and its socket. This includes socket configuration and resource mapping. At the next level, the card services layer oversees transactions, including resource allocation, between clients and the socket services layer.
Clients reside at the next level and include applications programs, drivers and "super clients." Drivers are typically provided by manufacturers to provide support for specific PC Cards manufactured for them. Super clients provide driver support for a wide variety of PC Cards. Among the super clients is the CARDID module supplied as part of the CardSoft.TM. software package from the assignee hereof.
A further understanding of the construction and operation of PC Cards and the requisite support software may be attained, for example, by reference to Mori, The PCMCIA Developers' Guide (Sycard Technology 1994).
Although the PC Cards and the accompanying hardware and software have greatly facilitated peripheral device use, resource conflicts remain a problem. Many portable computers, for example, permit simultaneous use of two PC Cards. If the drivers for those cards attempt to allocate the same resource, e.g., the same interrupt channel, one or both cards will not operate properly. This is compounded by the resource demands of non-PCMCIA compatible hardware connected to the computer, e.g., a serial-port mouse.
Accordingly, an object of this invention is to provide improved systems for controlling peripheral devices and, particularly, for resolving conflicts between those devices.
Another object of the invention is to provide such systems as can be implemented on a range of personal computers and for use with a range of peripheral devices, including PCMCIA compatible devices.
Still another object of the invention is provide such systems as can operate automatically, as well as under user control.